<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
             // 用户默认有50个积分，默认的权限等级为1，默认每次消费会增加5个积分
      function userInfoPoints(point = 50, roleLevel = 1, num = 5) {
        return {
          // 查询用户的当前积分
          get: function () {
            return point
          },
          // 每次增加num个积分
          add: function () {
            point += num
          },
          // 对当前的积分进行翻倍
          addDouble: function () {
            point *= 2
          },
          // 设置用户的当前积分
          setPoints: function () {
            // 如果达到管理员的权限等级
            // 实际项目中可能更复杂!!!
            if (roleLevel >= 5) {
              point = 500
              alert('积分设置成功')
            } else {
              alert('权限不足')
            }
          },
          // other
          otherFunction: function () {
            // 积分兑换活动...
          },
          // 输出
          print: function () {
            console.log(`当前消费积分的余额是:${point}`)
          },
        }
      }

      const user1 = userInfoPoints(100, 5, 5)
      user1.add()
      user1.add()
      user1.print() // 输出 110
      user1.setPoints()
      user1.print() // 输出 500

      // 再创建一个用户
      const user2 = userInfoPoints()
      user2.print() // 输出 50
      user2.add()
      user2.addDouble()
      user2.print() // 输出 110

      // 注意：这里的两个对象user1和user2并不影响，是完全独立的


    </script>
  </body>
</html>
